package com.jing.product.service;

import com.jing.common.core.domain.R;
import com.jing.product.domain.dto.ProductCategoryRecursionDTO;
import com.jing.product.domain.dto.ProductDTO;
import com.jing.product.domain.dto.ProductResultDTO;
import com.jing.product.domain.po.Product;
import com.jing.product.domain.vo.ProductVO;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author：HaoYunde
 * @Package：com.jing.product.service
 * @Project：Jing
 * @name：ProductService
 * @Date：2024/5/23 21:06
 */
public interface ProductService {

    void addProduct(ProductDTO productDTO);

    ArrayList<ProductCategoryRecursionDTO> recursion(Integer id);

    List<ProductDTO> findProductList(ProductVO productVO);

    void delect(Integer id);

    /**
     * 修改商品
     * @param product
     */
    void update(ProductDTO product);


    /**
     * 修改商品是否上架
     * @param id
     * @param publishStatus
     */
    void updatepublishStatus(Integer id, Integer publishStatus);

    /**
     * 修改商品是否新品
     * @param id
     * @param newStatus
     */
    void updatenewStatus(Integer id, Integer newStatus);

    /**
     * 修改商品是否推荐
     * @param id
     * @param recommandStatus
     */
    void updaterecommandStatus(Integer id, Integer recommandStatus);

    /**
     * 回显
     * @param id
     * @return
     */
    ProductResultDTO getUpdateInfo(Integer id);
}
